package com.bootcamp.mall.service.admin;

import com.bootcamp.mall.model.bo.admin.AddAdminBO;
import com.bootcamp.mall.model.bo.admin.AdminLoginInfoBO;
import com.bootcamp.mall.model.bo.admin.SearchAdminBO;
import com.bootcamp.mall.model.bo.admin.UpdateAdminBO;
import com.bootcamp.mall.model.bo.admin.ChangeAdminPwdBO;
import com.bootcamp.mall.model.vo.admin.AdminLoginInfoVO;
import com.bootcamp.mall.model.vo.admin.AllAdminInfoVO;

import java.util.List;

/**
 * @program: mall
 * @description:
 * @author: Keyu Li
 * @create: 2021-11-09 09:14
 **/

public interface AdminService {
    /**
     * 把登录信息封装为bo对象，进行登录状态判断，返回code状态
     * 登陆成功后，把当前admin Id 放入 session 中，以进行权限判断
     * @param adminBO:
     * @return java.lang.Integer 200登录成功，404用户名密码错误，500服务器繁忙，10000用户名或密码为空
     * @date 11/9/2021 10:02
     */
    AdminLoginInfoVO login(AdminLoginInfoBO adminBO);

    /**
     * 得到所有admin信息，封装为vo对象
     * @param :
     * @return java.util.List<com.bootcamp.mall.model.vo.admin.AllAdminInfoVO>
     * @date 11/9/2021 14:35
     */
    List<AllAdminInfoVO> allAdmins();

    /**
     * 添加用户，并返回受到影响的行数
     * @param adminBO:
     * @return java.lang.Integer 0 表示正常，-1 表示插入失败（有同名）
     * @date 11/9/2021 14:34
     */
    Integer addAdmins(AddAdminBO adminBO);

    AllAdminInfoVO getAdminsInfo(Integer id);

    /**
     *  返回 0 表示成功，为 -1 表明修改失败
     * @param adminBO:
     * @return java.lang.Integer
     * @date 11/12/2021 14:31
     */
    Integer updateAdminss(UpdateAdminBO adminBO);

    /**
     * 返回0代表前端/后端异常，-1表示删除admin，1表示删除正常
     * @param id:
     * @return java.lang.Integer
     * @date 11/9/2021 16:23
     */
    Integer deleteAdmins(Integer id);

    List<AllAdminInfoVO> getSearchAdmins(SearchAdminBO adminBO);

    Integer changePwd(ChangeAdminPwdBO adminBO);
}
